package com.vxdata

object 基础_3_运算符 {
  def main(args: Array[String]): Unit = {
    /**
     * TODO 算数运算符
     * +, -, *, /, %
     */
    // 正号
    val a = +3
    // 负号
    val a1 = -3

    // 相加
    val b = 3 + 3
    // 相减
    val b1 = 3 - 3

    val c = 3 * 3
    // 整数之间做除法 时，只保留整数部分而舍弃小数部分
    // 3
    val c1: Int = 10 / 3
    // 3.0
    val c2: Double = 10 / 3
    // 3.3333
    val c3: Double = 10.0 / 3

    /**
     * TODO 关系运算符
     * == , != , < , > , <= , >=
     */

    /**
     * TODO scala 中 == 与 eq() 与 equals() 的区别
     * == 更类似Java中的 equals() , 比较两个对象的实际的值
     * eq() 比较两个对象在内存地址中的值
     * equals() 比较两个对象的实际的值
     */


    /**
     * TODO 逻辑运算符
     * && , || , !=
     */


    /**
     * TODO 赋值运算符
     * =    简单赋值
     * +=   相加后再赋值    c += a 等于 c = c + a
     * -=   相减后再赋值    c -= a 等于 c = c - a
     * *=   相乘后再赋值    c *= a 等于 c = c * a
     * /=   相除后再赋值    c /= a 等于 c = c / a
     * %=   求余后再赋值    c %= a 等于 c = c % a
     * <<=  左移后再赋值    c <<= 2 等于 c = c << 2
     * <<=  右移后再赋值    c >>= 2 等于 c = c >> 2
     * &=   按位与后赋值    c &= 2 等于 c = c & 2
     * ^=   按位异或后赋值   c ^= 2 等于 c = c ^2
     * |=   按位或后赋值    c |= 2 等于 c = c | 2
     */

    /**
     * TODO Scala 运算符本质
     * 在 Scala 中其实是没有运算符的，所有运算符都是方法。
     * 当调用对象的方法时，点.可以省略
     * 如果函数参数只有一个，或者没有参数，()可以省略
     */


  }

}
